什么可能是以下的正则表达式

时间:2017-09-16 16:31:04

标签: regex unix

let commonView = UINib(nibName: "CommonView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! CommonView
        firstView.addSubview(commonView)


        commonView.lblCommon.text = "We can change label in particular Screen"

上述两行的正则表达式可能是什么。 即使是其中一行

场景是4个字符后跟下划线后跟字符(任意数字)后跟下划线后跟字符(任意数字)再次下划线字符..以字符结尾。

$ cat t1.txt: ABCD_EFG_HIJK ABCD_HJIJ_IJKL

注意:它以4个字符开头。

3 个答案:

答案 0 :(得分:1)

编辑之后,问题是要找到一个匹配以4个字符开头的字符串的正则表达式,后跟最少1个由' _'组成的组。然后是最小的1个字符。

[A-Z]{4}(_[A-Z]+)+

说明:

[A-Z]{4}             # exactly 4 picks from A-Z
(                    # group 1 start
 _[A-Z]+             # "_" followed by 1 or more character out of A-Z
)+                   # group 1 end. Repeat group 1 1 or more times.

您可以在regex101

播放

在上面的正则表达式中,我选择将大写字母作为字符,因为这是问题所暗示的。但是,这可能是一组字母,例如,它会将正则表达式更改为:

[a-zA-Z]{4}(_[a-zA-Z]+)+

答案 1 :(得分:0)

如果你的意思是any number of character至少有一个字符,这是最正确的答案:/^[A-Za-z0-9]{4}_([A-Za-z0-9]+_)+[A-Za-z0-9]+$/g

如果您愿意,可以在regex网站上试用此解决方案:regexr.com

编辑:如果您只想使用大写字母,则应从方括号中删除a-z0-9

答案 2 :(得分:0)

另一种选择:

[^_\n]+_[^_]+_[^_\n]+

匹配新行\n_以外的所有内容 下划线之间