我需要有关如何为这些正则表达式字符串添加不区分大小写(?i)的建议,因此我不必使用大小写字母进行双行。
<RegEx find="(sumlja)(m|š|mo|te|ju|li)*" replaceWith="sumnja$2"/>
到目前为止,我有大约100条线路,而且确实会更多, 我真的可以在这件事上帮助你。我用C#工作, 而且我不是编码员。只是想为我需要做的事情学习这个。
答案 0 :(得分:0)
使用这样的正则表达式:
find="(?i)(sumlja)(m|š|mo|te|ju|li)*".
不区分大小写的选项将应用于整个模式。
要将其应用于第一个捕获组,请使用(?i:PATTERN)
:
find="(?i:(sumlja))(m|š|mo|te|ju|li)*"
编辑:
如果输入字符串只能是大写或大写,则可以使用以下C#代码:
var rxPtrn = new Regex(@"(?i)(sumlja)(m|š|mo|te|ju|li)*");
var str = "SUMLJAM"; // JUST A TEST STRING
var res = rxPtrn.Replace(str, m => (m.Groups[2].Value == m.Groups[2].Value.ToUpper() ? "SUMNJA" : "sumnja") + m.Groups[2].Value);
当您针对SUMNJAM
对其进行测试时,它会输出sumljam
。它没有涵盖的唯一正常情况是标题案例,但很容易添加。如果您有兴趣,请告诉我。