动态选择 DLL 中字符串中的字符列表
我是新来的,我的英语不会是你今天读到的最好的。 我刚刚从 DLL 导入了“密钥”列表
(#8yg54w-#95jz#e-##9ixop-#7ps-#ny#9qv-#+pzbk5-#bp669x-#bp6696-#bp6696-#bp6696-#bp6696-#bp6696-#fbhstu-# ehddtk-####9py),
我们将这样命名它,它是一个简单的字符串。 我需要在每个 # 之后选择组成该字符串的“键”,但它必须动态完成,而不是像您在 ArrayList [0,1,2 ...] 中选择的那样。 最终结果应该看起来像 8yg54w,在你得到这个之后,它是一个循环,你得到下一个,这意味着 95jz#e。第一个“#”是每个键的分隔符。 我想知道如何继续获取第一个分隔符之后的每个密钥。 我会尽力回答你的问题,因为我认为会有一些问题,这可能解释得不好,我提前道歉!谢谢
I'm new here and my English will not be the best you'll read today.
I just imported from a DLL a list of "key"
(#8yg54w-#95jz#e-##9ixop-#7ps-#ny#9qv-#+pzbk5-#bp669x-#bp6696-#bp6696-#bp6696-#bp6696-#bp6696-#fbhstu-#ehddtk-####9py),
we will name it this way it's a simple string.
I need to select the "key" that compose this string after each # but it has to be done dynamically and not like you choose in an ArrayList [0,1,2 ...].
The end result should look like 8yg54w and after u got this one it's a loop and u get the next one, which means 95jz#e. The first "#" is a separator for each key.
I wanna know how can I proceed to get each key after the first separator.
I'll try to answer your questions because I think that there will be some, this is probably poorly explained, I apologize in advance! Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您的解决方案可能是一个返回
IEnumerable
的简单函数。您可以通过拆分字符串并使用yield
关键字返回迭代器来实现此目的。例如,您可以使用这种方法,但如果您需要它成为唯一的全球密钥生成器,我建议更好地隐藏获取下一个密钥的逻辑。使用仅具有
GetNextKey()
方法的静态类,该方法可以是上面代码的组合...Your solution may be a simple function that returns an
IEnumerable<string>
. You can accomplish this by splitting the string and using theyield
keyword to return an iterator. E.g.You can use this approach but I suggest to better hide the logic to get the nex Key if you need it to be a Unique Gobal Key generator. Using a static class with only a
GetNextKey()
method that can be the combination of the code above...这应该返回一个键数组。
string.Split("-#");
当你只需要字符串时:
This should return an array of keys.
string.Split("-#");
When you just need the string:
您可以使用正则表达式。
输出:
正则表达式的解释
(?<=\#)[A-Za-z1-9#]+(?=-)
(?<=prefix) find(?=suffix)
查找前缀
和后缀
之间的模式find
。(?<=\#)
前缀#
(使用\
转义)。[A-Za-z1-9#]
要匹配的字符集(大小写字母+数字+#)。+
量词:至少一个字符。(?=-)
后缀-
。我不确定
)
是否是字符串的一部分。要获取最后一个键###9py
(如果字符串包含)
,请使用(?<=\#)[A-Za-z1-9#] +(?=-|\))
其中\)
是转义的右大括号。如果)
在那里,请使用(?<=\#)[A-Za-z1-9#]+(?=-|$)
其中$
是字符串的结尾。|
表示“或”。即,后缀要么是“-”OR)
,要么是-
OR$
(行尾)。You can use a Regular expression.
Output:
Explanation of the regular expression
(?<=\#)[A-Za-z1-9#]+(?=-)
(?<=prefix)find(?=suffix)
finds the patternfind
between aprefix
and asuffix
.(?<=\#)
prefix#
(escaped with\
).[A-Za-z1-9#]
character set to match (upper and lower case letters + digits + #).+
quantifier: At leat one character.(?=-)
suffix-
.I am not sure whether the
)
is part of string. To get the last key###9py
if the string contains)
use(?<=\#)[A-Za-z1-9#]+(?=-|\))
where\)
is the right brace escaped. If)
is in there, use(?<=\#)[A-Za-z1-9#]+(?=-|$)
where$
is the end of the string.|
means OR. I.e., the suffix is either '-' OR)
or it is-
OR$
(end of line).