我有一个文本“你好单词”“单词你好”,我如何获得“你好单词”“单词你好”(例如)
'''
let string1="Hello Word"让引用String1="Hello Word"
let string2="Word Hello"让引用String2="word Hello"
'''
所选答案非常适合运营使用案例:
你好Word
然而,如果我们谈论的是一个句子中的第一个单词,可能会有一个包含多个句子的更复杂的字符串:
<code>你好。果冻世界?好词。\n ZEllo世界!圆润的主。
在这种情况下,使用正则表达式也可以解决这两种情况。
拥有更多正则表达式技能的人也许能够改进正则表达式
extension String
{
func withLowerCaseSentences() -> String
{
do
{
// A sentence is something that starts after a period, question mark,
// exclamation followed by a space. This is only not true for the first
// sentence
//
// REGEX to capture this
// (?:^|(?:[.!?]\\s+))
// Exclude group to get the starting character OR
// anything after a period, exclamation, question mark followed by a
// whitespace (space or optional new line)
//
// ([A-Z])
// Capture group to capture all the capital characters
let regexString = "(?:^|(?:[.!?]\\s+))([A-Z])"
// Initialize the regex
let regex = try NSRegularExpression(pattern: regexString,
options: .caseInsensitive)
// Convert string to a character array
var characters = Array(self)
// Loop through all the regex matches
for match in regex.matches(in: self,
options: NSRegularExpression.MatchingOptions(),
range: NSRange(location: 0,
length: count))
as [NSTextCheckingResult]
{
// We are not looking for the match, but for the group
// For example Hello Word. JELLO word will give give us two matches
// "H" and ". J" but each of the groups within each match
// will give us what we want which is "H" and "J" so we check if we
// have a group. Look up matches and groups to learn more
if match.numberOfRanges > 1
{
// Get the range (location and length) of first group from
// the regex match
let matchedRange = match.range(at: 1)
// Get the capital character at the start of the sentence we found
let characterToReplace = characters[matchedRange.location]
// Replace the capital letter with a lower cased latter
characters[matchedRange.location]
= Character(characterToReplace.lowercased())
}
}
// Convert the processed character array back to a string if needed
return String(characters)
}
catch
{
// handle errors
print("error")
return self
}
}
}
然后可以使用:
let simpleString = "Hello world"
print("BEFORE")
print(simpleString)
print("\nAFTER")
print(simpleString.withLowerCaseSentences())
let complexString
= "Hello Word. JELLO world? WEllo Word.\n ZEllo world! MeLLow lord."
print("\nBEFORE")
print(complexString)
print("\nAFTER")
print(complexString.withLowerCaseSentences())
这给出了输出:
BEFORE
Hello world
AFTER
hello world
BEFORE
Hello Word. JELLO world? WEllo Word.
ZEllo world! MeLLow lord.
AFTER
hello Word. jELLO world? wEllo Word.
zEllo world! meLLow lord.
def fun(sentence : str) -> str:
words = sentence.split()
if not (words[0])[0].islower():
words[0] = (words[0])[0].lower() + (words[0])[1:]
out = " ".join(words)
return out
if __name__ == '__main__':
sentence1 = "Hello Everyone"
out1 = fun(sentence1)
print(sentence1, " : ", out1)
sentence2 = "HOW ARE YOU"
out2 = fun(sentence2)
print(sentence2, " : ", out2)
输出:
Hello Everyone : hello Everyone
HOW ARE YOU : hOW ARE YOU
获取第一个单词的第一个字母,并将其小写,然后删除第一个字母并添加其余字母。
extension StringProtocol {
var lowerCaseFirts: String { prefix(1).lowercased() + dropFirst() }
}
let str = "Hello World"
print(str.lowerCaseFirts)
我正在制作一个程序shell(#!/bin/sh),问题是printf只显示字符串param的第一个字。 这是为您简化的代码摘录: 此代码仅输出。
问题内容: 我正在尝试从文本中提取所有包含指定单词的句子。 但它正在回报我: 代替 : 有什么帮助吗? 问题答案:
问题内容: 我正在尝试编写一个函数来清理用户输入。 我不是要使其完美。我宁愿用小写字母表示一些名称和缩写,也不愿用大写字母表示完整的段落。 我认为该函数应使用正则表达式,但是我对这些表达式很不好,需要一些帮助。 如果以下表达式后跟一个字母,我想将该字母大写。 更好的是,该函数可以在“。”,“!”之后添加一个空格。和“?” 如果这些后面跟有一封信。 如何做到这一点? 问题答案: 由于PHP 5.5.
在我的数据框架中,有一列名为“teams”。它包括城市和球队名称。我想把这个城市拉进另一个纵队。这是数据帧:数据帧示例 我可以使用正则表达式轻松提取列: 然而,在“名称”栏中,对于纽约尼克斯队,它只给了我“New”的值,我想得到“New York”: 结果 那么,我该怎么做呢?如果单元格有2个单词,我该如何从开头只提取一个单词?如果单元格有3个单词,我该如何使用正则表达式从中提取2个单词?
我在大学上Java入门课程。我的作业是写一个程序来显示一个句子中1个字母单词的数量,一个句子中2个字母单词的数量...等等。句子是用户输入的。我应该使用一个循环,但不允许使用数组。 然而,现在只是开始,我只是想找出句子第一个单词的字母数。我得到的结果要么是字母数不正确,要么是字符串索引超出范围。 例如,当我输入“这是一个句子”时,它会给我“字符串索引超出范围:4”对此的任何帮助都将不胜感激。
给定一个正则表达式,如何拆分筛选字符串,如下所示: 像这样的字符串: 我试过 但这实际上没有任何解决方案?