在Bash中有一种简单的方法可以将一个已知的单词分成它的组成单词吗?
例如,我想将aCertainCamelCasedWord拆分为'某个Camel Cased Word',并能够选择我感兴趣的那些字段.当单词分隔符是下划线时,这可以通过cut(1)来完成,但是当单词是camelcased时我该怎么做呢?
我需要能够在Emacs中导航和编辑骆驼外壳单词的部分内容.功能类似于Intellij IDEA中的驼峰驼峰.例如,我需要将字符串BlahFooBar中的Blah,Foo和Bar标识为3个单独的单词,以便我可以导航/编辑它们,就像它们是单独的单词一样.
我试过玩语法表
(modify-syntax-entry ?A ".")
(modify-syntax-entry ?F ".")
Run Code Online (Sandbox Code Playgroud)
这具有制作lah,oo和ar字以及字符B和F字分隔符的效果.因此导航向后(和反向杀死单词)不能按预期工作.
我需要的是基于正则表达式而不是分隔符的单词边界.
我第一次在正则表达式中使用捕获组,我想知道我的问题是什么,因为我假设正则表达式引擎从左到右查看字符串.
我正在尝试将UpperCamelCase字符串转换为hyphened-lowercase-string,例如:
HelloWorldThisIsATest => hello-world-this-is-a-test
Run Code Online (Sandbox Code Playgroud)
我的前提条件是字母字符串,所以我不需要担心数字或其他字符.这是我尝试过的:
mb_strtolower(preg_replace('/([A-Za-z])([A-Z])/', '$1-$2', "HelloWorldThisIsATest"));
Run Code Online (Sandbox Code Playgroud)
结果:
hello-world-this-is-atest
Run Code Online (Sandbox Code Playgroud)
这几乎是我想要的,除了a和之间应该有一个连字符test.我已经包含A-Z在我的第一个捕获组中,所以我会假设引擎看到AT并连接了那个.
我究竟做错了什么?
Foo bar = new Foo();
if(bar instanceof Foo){
... // it's true
}
Run Code Online (Sandbox Code Playgroud)
我只是想知道为什么我们不使用camelcase notation(instanceOf)而不是它是如何(instanceof).
我有一个标签在骆驼案例中的标签,如#teamIndia.现在当点击这个标签时,它应该获取其中包含"#teamIndia"的所有结果,它应首先显示带有"#teamIndia"的结果,然后使用"teamIndia"然后"team India"然后"team"或"印度"等.
我在做什么:
搜索文字: "#teamIndia","#NEWYORK","#jobis","#2016"
POST /clip
{
"settings": {
"analysis": {
"char_filter" : {
"space_hashtags" : {
"type" : "mapping",
"mappings" : ["#=>|#"]
}
},
"filter": {
"substring": {
"max_gram": "20",
"type": "nGram",
"min_gram": "1",
"token_chars": [
"whitespace"
]
},
"camelcase": {
"type": "word_delimiter",
"type_table": ["# => ALPHANUM", "@ => ALPHANUM"]
},
"stopword": {
"type": "stop",
"stopwords": ["and", "is", "the"]
}
},
"analyzer": {
"substring_analyzer": {
"filter": [
"lowercase",
"substring"
],
"tokenizer": "standard"
},
"camelcase_analyzer": {
"type" : "custom", …Run Code Online (Sandbox Code Playgroud) 我尝试使用CamelCasePropertyNamesContractResolver,但它不会将pascal属性名称转换为驼峰套管?
注意:这只是一个例子,我的json输入是未知的,我只是json pascal的外壳.
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System;
namespace Example
{
class Program
{
static void Main(string[] args)
{
object myJsonInput = @"{'Id':'123','Name':'abc'}"; //Example only, any json.
object myJsonOutput;
var jsonSerializersettings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
myJsonOutput = JsonConvert.DeserializeObject<object>(myJsonInput.ToString(),jsonSerializersettings);
//{{"Id": "123","Name": "abc"}}
}
}
}
Run Code Online (Sandbox Code Playgroud) 尝试创建公式以将由空格分隔的单词字符串转换为驼峰式
我们应该从以下名称中期待什么?:mGage Program
如果我使用驼峰命名法,它将是这样mGageProgram,如果我生成(在 eclipse 中)getter 和 setter,我将得到以下内容:
public String getmGageProgram() {
return mGageProgram;
}
public void setmGageProgram(String mGageProgram) {
this.mGageProgram = mGageProgram;
}
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎不正确,因为我期待getMGageProgram()和setMGageProgram(value)。
这些 getter/setter 名称好吗?
有人告诉我在我的数据库中使用蛇形案例,而不是骆驼案例。JSON API 说在单词之间使用破折号作为对象键。Javascript,大家都用camelCase。
如果我有一个 RAILS 服务器从 SQL 数据库获取数据,将其作为 json 发送并在 javascript 中使用,我真的需要在这些符号之间进行转换吗?
为什么不到处使用蛇盒?
我想转换这些字符串:
fooBar
FooBar
Run Code Online (Sandbox Code Playgroud)
成:
foo-bar
-foo-bar
Run Code Online (Sandbox Code Playgroud)
对于任何给定的字符串,我如何在JavaScript中以最优雅和最高效的方式执行此操作?