嘿伙计们我试图找到一种方法来显示字母I
,但我一直遇到麻烦这就是我到目前为止所做的事。
这是我打开的文本文件,tolls.txt:
Join Microsoft employees supporting I Inspire Youth Project and other youth causes #GivingHero: http://msft.it/6013jboz
Waze for @WindowsPhone is here: http://msft.it/6016jbp2 I
fid=fopen('tolls.txt');
getLine=fgetl(fid);
while ischar(getLine)
ct='I\s';
How=regexp(getLine,ct,'match');
counter=counter+length(How);
getLine=fgetl(fid);
end
我的问题是因为我必须在I
任何时候合并我必须能够显示所有独立的大写I
之后没有空格,例如一句话和一句话。所以在我的bat变量中我有bat = I\s
但是我不知道是否有一个或者我可以使用的语句来合并\sI
。
希望我很清楚这个问题,谢谢你提前给予帮助。
答案 0 :(得分:2)
答案 1 :(得分:0)
@RoneyMichael的解决方案很好(尽管可能有点矫枉过正),但有一个或声明。以下是您可以查找三种不同模式的方法 - ' I '
或'I '
或' I'
:
ct='(^I[\W]*\s)|(\sI[\W]*\s)|(\sI[\W]*$)';
How=regexp(getLine,ct,'match')
返回:
How =
' I ' ' I'
如果最后两个模式分别出现在字符串的开头或结尾,则后两个模式特别匹配后者'I'
。 '[\W]*'
匹配零个或多个非单词字符,即标点符号。由于诸如' ...','?!'等等,它可以为零或更多。或者,您可以使用类似的内容明确列出允许的标点符号{1}}而是(只记得引号,圆括号,括号等内容也可以出现在一行的末尾)。此外,您可能希望匹配'[\.\?\!]*'
或'"I'
。在这种情况下,您只需使用
''I'
您可以在正则表达式中使用other logical and conditional operators。