我有一个像"(\\d{4},\\d{2},\\d{2} :\\d{2}:\\d{2}:\\d{2})"
这样的正则表达式
我将此模式作为参数传递给一个函数,该函数基于","
标记输入字符串。
示例:
func((\\d{4},\\d{2},\\d{2} :\\d{2}:\\d{2}:\\d{2}),func(n))";
如何在标记化时在正则表达式中转义逗号?
答案 0 :(得分:0)
可以请您发布将字符串标记化的函数吗?这样可以对您的代码有所帮助。
在没有此类信息的情况下,您可以按以下方式使用split()(如果要执行的操作全部在“,”上拆分):
String s = "Messages,Hello\,World,Hobbies,Java\,Programming";
System.out.println(Arrays.toString(s.split("(?<!\\\\),")));
引荐-http://www.javacreed.com/how-to-split-a-string-with-escaped-delimiters/
您可以将代码替换为:
String str = "(\\d{4}\\,\\d{2}\\,\\d{2} \\d{2}:\\d{2}:\\d{2}), func(a)";
String[] tokens = str.split("(?<!\\\\),");
System.out.println(Arrays.toString(tokens));
这将为您提供一串由“,”分割的令牌的字符串
答案 1 :(得分:0)
@Derryl Thomas的答案可能是正确的答案。 这是另一种技术。
例如:
"(\\d{4},\\d{2},\\d{2} :\\d{2}:\\d{2}:\\d{2})"
"(\\d{4}boppity\\d{2}boppity\\d{2} :\\d{2}:\\d{2}:\\d{2})"
newStringVariable = yourStringVariable.replace("boppity", ",")