我希望匹配字符串开头或1
之后出现的a
。
我尝试了[\Aa]1
,但这给了我一个PatternSyntaxException。
答案 0 :(得分:2)
尝试这样的模式:
(^|a)1
^
将匹配字符串的开头,而a
将匹配字面拉丁字母a
。 |
被称为交替,并且将匹配左侧或右侧的模式,而括号限制交替的范围。
现在,这将包含a
作为匹配字符串的一部分。如果您想避免这种情况,您可以使用lookbehind,如下所示:
(?<=^|a)1
这将匹配1
,但前提是它紧跟在字符串的开头或拉丁字母a
之前。
答案 1 :(得分:1)
我不确定这是不是你的意思,但也许你正在寻找像
这样的东西(?<=\\A|a)1
或者如果您没有使用Pattern.MULTILINE
标志
(?<=^|a)1