如何使用scala正则表达式模式匹配

时间:2017-09-15 14:53:36

标签: scala apache-spark

我在scala中有一个下面的字符串,我想搜索并用双引号“BELL”替换值BELL。我使用替换但是它无法正常工作,是什么语法使用正则表达式来检查来自的确切搜索字符串从头到尾。

我的首次搜索是使用BELL - > “BELL”和下一次搜索将是BELL。* - > “BELL ”, 我的第一个搜索替换应该只更新BELL,第二个搜索和替换应该更新BELL。

val str = "(((( EMP = BELL) OR ( LASTNAME = BELL) OR ( LASTNAME = BELL)) OR ( ( EMPFIRSTNAME = BELL.*)))"

str.replace("BELL","""""""+"BELL"+""""""")

( ( ( ( EMP = "BELL") OR ( LASTNAME = "BELL") OR ( LASTNAME = "BELL")) OR ( ( EMPFIRSTNAME = **"BELL."***)))

1 个答案:

答案 0 :(得分:0)

试试这个,使用反斜杠来转义双引号。

val str = "(((( EMP = BELL) OR ( LASTNAME = BELL) OR ( LASTNAME = BELL)) OR ( ( EMPFIRSTNAME = BELL.*)))"
val regex = "BELL((\\.)(\\*))*"
val replaced = str.replaceAll(regex, "\"BELL$2\"")