我正在寻找一个匹配特定字符串的正则表达式:
"fu:
"
第3点是我真正无法解决的部分。
正则表达式"fu:(.*)?"
匹配除第3点之外的所有字符串。
[编辑]
它现在非常接近,唯一的问题是它在第二次之后没有停止“。
基本上这个字符串:
“fu:没有大写字母:,其他一些带有大写字母的随机文字”
是匹配但不应该。
答案 0 :(得分:3)
答案 1 :(得分:1)
^"fu:.*[A-Z].*"$
如果您希望搜索多行文字,请不要忘记多行模式。
^"fu: - starts with "fu:
.* - any other characters
[A-Z] - capital letter
.* - other characters
"$ - " at the end
答案 2 :(得分:0)
像
这样的东西^"fu:([^"]*?[A-Z][^"]*?)"$
答案 3 :(得分:0)
我评论了anubhava解决方案的一个问题(它只匹配A到Z范围内的大写字母),但后来我自己找到了解决方案。请注意,这需要POSIX-compliant regular expression引擎支持Unicode。
我的解决方案是
/^"fu:.*[[:upper:]].*"$/
它解决了用英语以外的其他语言查找大写字母的问题(部分或完全不同的字母表)。
Ruby中的一个例子:
rx = /^"fu:.*[[:upper:]].*"$/
arr = ['"fu:Berlin"', '"fu:İstanbul"', '"fu:Washington"', '"fu:Örebro"', '"fu:Москва"']
arr.map {|s| s.scan rx}
在这种情况下,所有字符串都匹配。