我正在搜索必须以字母开头,后跟字母或字符或没有任何内容的关键字
我正在寻找的东西:x,x2,xx等
我的正则表达式是[A-Za-z] [A-Za-z0-9] + | [a-zA-Z]
我需要忽略诸如INT,WRITE,READ等字样,不知道如何实现
如果它遇到带引号的字符串,我需要它忽略引号内的任何内容吗?
任何帮助?
提前致谢。
答案 0 :(得分:2)
我的问题不明确。如果你想接受以字母开头的单词,并继续使用字母或数字(或下划线);但是从列表中排除单词,可以使用正则表达式:
(?!\b(?:INT|WRITE|READ)\b)\b[A-Za-z]\w*\b
如果要排除包含所有大写字母的单词而不是列表,请尝试:
(?!(?:\b[A-Z]+\b))\b[A-Za-z]\w*\b
在Java中,我认为你需要加倍元字符的反斜杠,所以它可能是这样的:
"(?!\\b(?:INT|WRITE|READ)\\b)\\b[A-Za-z]\\w*\\b"
如果您还想在引号中排除字符串,可以使用以下内容:
"[^"]+"|((?!\b(?:INT|WRITE|READ)\b)\b[A-Za-z]\w*\b)
然后检查捕获组1中是否有任何内容不包含双引号标记的短语。
另一种选择是将所有不需要的参数替换为单词列表以及引用的文本。在Java中,类似于:
String resultString = subjectString.replaceAll("\"[^\"]*\"|\\b(?:WRITE|INT|READ)\\b", "");